API Controllers এবং RESTful Services তৈরি

Microsoft Technologies - এএসপি ডট নেট কোর (ASP.Net Core) Web API তৈরি করা (Building Web APIs) |
218
218

ASP.NET Core এ Web API তৈরি করা খুবই সহজ এবং এর জন্য আমরা সাধারণত API Controllers ব্যবহার করি। RESTful Services হলো একটি আর্কিটেকচারাল স্টাইল যা HTTP প্রোটোকল ব্যবহার করে ক্লায়েন্ট এবং সার্ভারের মধ্যে কমিউনিকেশন তৈরি করে। API Controllers এর মাধ্যমে আপনি একটি RESTful API তৈরি করতে পারবেন, যা ক্রস-প্ল্যাটফর্ম ক্লায়েন্টের সাথে যোগাযোগ করতে সক্ষম হয়।


API Controllers এর ভূমিকা

ASP.NET Core-এ API Controller একটি বিশেষ ধরনের Controller যা HTTP রিকোয়েস্ট (GET, POST, PUT, DELETE) গ্রহণ করে এবং HTTP রেসপন্স প্রদান করে। এটি মূলত ডেটা প্রসেসিং এবং JSON বা XML আউটপুট প্রদান করে। API Controllers সাধারণত ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা আদান-প্রদান করতে ব্যবহৃত হয়।

API Controller তৈরি

API Controller তৈরি করতে, ASP.NET Core এর ControllerBase ক্লাস ইনহেরিট করতে হয়, যা বিশেষভাবে API Controllers-এর জন্য ডিজাইন করা হয়েছে। এটি ActionResult অথবা IActionResult রিটার্ন করে, যা HTTP রেসপন্সের স্ট্যাটাস কোড এবং ডেটা ফেরত পাঠায়।

উদাহরণ:

ধরা যাক, একটি Product মডেল এবং তার জন্য API Controller তৈরি করতে হবে।

Model:

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

API Controller:

[Route("api/[controller]")]
[ApiController]
public class ProductsController : ControllerBase
{
    private static List<Product> products = new List<Product>
    {
        new Product { Id = 1, Name = "Laptop", Price = 1500.00M },
        new Product { Id = 2, Name = "Phone", Price = 800.00M }
    };

    // GET api/products
    [HttpGet]
    public IActionResult Get()
    {
        return Ok(products); // 200 OK with products data
    }

    // GET api/products/1
    [HttpGet("{id}")]
    public IActionResult Get(int id)
    {
        var product = products.FirstOrDefault(p => p.Id == id);
        if (product == null)
        {
            return NotFound(); // 404 Not Found
        }
        return Ok(product); // 200 OK with product data
    }

    // POST api/products
    [HttpPost]
    public IActionResult Post([FromBody] Product product)
    {
        if (product == null)
        {
            return BadRequest(); // 400 Bad Request
        }

        products.Add(product);
        return CreatedAtAction(nameof(Get), new { id = product.Id }, product); // 201 Created
    }

    // PUT api/products/1
    [HttpPut("{id}")]
    public IActionResult Put(int id, [FromBody] Product product)
    {
        var existingProduct = products.FirstOrDefault(p => p.Id == id);
        if (existingProduct == null)
        {
            return NotFound(); // 404 Not Found
        }

        existingProduct.Name = product.Name;
        existingProduct.Price = product.Price;
        return NoContent(); // 204 No Content
    }

    // DELETE api/products/1
    [HttpDelete("{id}")]
    public IActionResult Delete(int id)
    {
        var product = products.FirstOrDefault(p => p.Id == id);
        if (product == null)
        {
            return NotFound(); // 404 Not Found
        }

        products.Remove(product);
        return NoContent(); // 204 No Content
    }
}

API Controller এর বৈশিষ্ট্য

  • Route Attribute: [Route("api/[controller]")] — এটি API Controller এর রাউটিং কনফিগার করে। [controller] অংশটি নিজে থেকেই "Products" রাউট হিসাবে রূপান্তরিত হয়।
  • Action Methods: HTTP GET, POST, PUT, DELETE ইত্যাদি রিকোয়েস্ট হ্যান্ডল করার জন্য আলাদা আলাদা অ্যাকশন মেথড ব্যবহার করা হয়। যেমন:
    • Get(): GET রিকোয়েস্ট হ্যান্ডল করে।
    • Post(): POST রিকোয়েস্ট হ্যান্ডল করে।
    • Put(): PUT রিকোয়েস্ট হ্যান্ডল করে।
    • Delete(): DELETE রিকোয়েস্ট হ্যান্ডল করে।
  • HTTP Status Codes: প্রতিটি রিকোয়েস্টের জন্য একটি স্ট্যাটাস কোড রিটার্ন করা হয়, যেমন:
    • Ok(): 200 OK
    • NotFound(): 404 Not Found
    • BadRequest(): 400 Bad Request
    • CreatedAtAction(): 201 Created
    • NoContent(): 204 No Content

RESTful Services এর মূল বৈশিষ্ট্য

REST (Representational State Transfer) একটি আর্কিটেকচারাল স্টাইল, যা ওয়েব সার্ভিসগুলোর মধ্যে ডেটা অ্যাক্সেস করার প্রক্রিয়া নির্ধারণ করে। RESTful API সার্ভিসগুলো HTTP প্রোটোকল ব্যবহার করে এবং সাধারণত JSON বা XML আউটপুট প্রদান করে। RESTful API তৈরির জন্য কিছু নিয়মাবলী অনুসরণ করা হয়:

  1. Stateless: প্রতিটি রিকোয়েস্ট অবশ্যই পূর্ণাঙ্গ হতে হবে, অর্থাৎ, সার্ভার কোনও স্টেট বা সেশন ট্র্যাক করবে না।
  2. Uniform Interface: সমস্ত রিকোয়েস্ট একই ধরনের ইন্টারফেস ব্যবহার করবে (যেমন GET, POST, PUT, DELETE)।
  3. Resources: রিসোর্স (যেমন Product) URLs-এর মাধ্যমে অ্যাক্সেস করা হয়।
  4. HTTP Methods: প্রতিটি HTTP মেথডের জন্য নির্দিষ্ট কাজ:
    • GET: রিসোর্স পড়া (Retrieve)
    • POST: নতুন রিসোর্স তৈরি (Create)
    • PUT: বিদ্যমান রিসোর্স আপডেট (Update)
    • DELETE: রিসোর্স মুছে ফেলা (Delete)

RESTful API এর উদাহরণ

এটি একটি সাধারণ উদাহরণ যেখানে GET এবং POST মেথড ব্যবহার করা হয়েছে:

  • GET রিকোয়েস্ট: /api/products — সমস্ত প্রোডাক্টের তালিকা ফেরত দেয়।
  • GET রিকোয়েস্ট: /api/products/{id} — নির্দিষ্ট প্রোডাক্টের তথ্য ফেরত দেয়।
  • POST রিকোয়েস্ট: /api/products — একটি নতুন প্রোডাক্ট তৈরি করে।
  • PUT রিকোয়েস্ট: /api/products/{id} — বিদ্যমান প্রোডাক্টের তথ্য আপডেট করে।
  • DELETE রিকোয়েস্ট: /api/products/{id} — প্রোডাক্টটি মুছে ফেলে।

সারাংশ

ASP.NET Core-এ API Controllers এবং RESTful Services তৈরি করা খুবই সহজ এবং এটি অত্যন্ত শক্তিশালী। API Controllers HTTP রিকোয়েস্টগুলোকে প্রসেস করে এবং যথাযথ HTTP রেসপন্স প্রদান করে। RESTful API ডেভেলপমেন্টের জন্য HTTP মেথড এবং রিসোর্স ভিত্তিক রাউটিং ব্যবহার করা হয়, যা ক্লায়েন্ট-সার্ভার কমিউনিকেশনকে সহজ এবং কার্যকরী করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion